#!/usr/bin/env python
#coding:utf-8

import os
import string

def replace(file, search_for, replace_with):
    #替换文本文件中的字符
    
    back = os.path.splitext(file)[0] + '.bak' #定义文件名
    temp = os.path.splitext(file)[0] + '.tmp'
    #如果已存在.tmp文件，则进行删除操作
    try:
        os.remove(temp)
    except os.error:
        pass
        #print 'not find the file!'

    fi = open(file)
    fo = open(temp, 'w')

    #读取file文件中的字符，并在替换后写入.tmp文件中。
    for s in fi.readlines():
        fo.write(string.replace(s, search_for, replace_with))

    fi.close()
    fo.close()
    #如果已存在.bak文件，则进行删除操作
    try:
        os.remove(back)
    except os.error:
        pass
    #将原始文件名改成.bak文件
    os.rename(file, back)
    #将.tmp文件改成原始文件名
    os.rename(temp, file)


if __name__ == '__main__':
    file = "sample.txt"
    replace(file, "hello", "tjenaa")
    print '第一次替换任务完成！'
    replace(file, "tjenaa", "hello")
    print '第二次替换任务完成！'
